package model;

import javax.swing.table.AbstractTableModel;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Date;

/**
 * Author: Daniel
 * Date: 30.09.13
 */

public class WorkerTableModel extends AbstractTableModel {  // typ generyczny <> służy do przechowywania obiektów tylko tej klasy
    private String[] tablica = { "Imie", "Nazwisko", "Data urodzenia", "Płeć"};

    ArrayList <Worker> listaWierszy = new ArrayList<Worker>();

    public WorkerTableModel(ArrayList<Worker> listaWierszy) {
        if(listaWierszy != null ){
            this.listaWierszy = listaWierszy;
        }
    }

    public void dodajPracownika(Worker worker){
        listaWierszy.add(worker);
        fireTableDataChanged();
    }

    public void usuńPracownika(int numerWiersza){
        listaWierszy.remove(numerWiersza);
        fireTableDataChanged();
    }

    @Override
    public int getRowCount() {
        return listaWierszy.size();
    }

    @Override
    public int getColumnCount() {
        return tablica.length;
    }

    @Override
    public String getColumnName(int column) {
        return tablica[column];
    }

    @Override
    public Object getValueAt(int rowIndex, int columnIndex) {
        switch(columnIndex){
            case 0:
                return listaWierszy.get(rowIndex).getImie();
            case 1:
                return listaWierszy.get(rowIndex).getNazwisko();
            case 2:
                Date dataUr = listaWierszy.get(rowIndex).getDataUrodzenia();
                SimpleDateFormat sdf = new SimpleDateFormat("dd.MM.yyyy");
                return sdf.format(dataUr);
            case 3:
                return listaWierszy.get(rowIndex).getPlec();
            default:
                return "";

        }
    }

    public ArrayList<Worker> getListaWierszy() {
        return listaWierszy;
    }
}
